package br.com.treinamento.gestaoExperienciaProfissional.controller;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.com.treinamento.gestaoExperienciaProfissional.model.Usuario;
import br.com.treinamento.gestaoExperienciaProfissional.service.UsuarioService;
import br.com.treinamento.gestaoExperienciaProfissional.util.FacesUtil;

@ManagedBean
@SessionScoped
public class LoginController implements Serializable {

	private static final long serialVersionUID = 8301865434469950945L;

	private UsuarioService usuarioService = new UsuarioService();

	private Usuario usuario = new Usuario();
	
	private Usuario usuarioLogado;

	public String login() {
		usuarioLogado = usuarioService.recuperarUsuario(this.usuario);
		if (usuarioLogado == null) {
			FacesUtil.mostrarMensagemSucesso("usuario.senha.invalida");
		} else if (usuarioLogado.getHabilitado()) {
			return logar();
		} else {
			FacesUtil.mostrarMensagemSucesso("usuario.naoHabilitado");
		}
		return "";
	}

	private String logar() {
		FacesUtil.getHttpSession().setAttribute("usuario", usuario);
		return "/paginas/paginaInicial.jsf?faces-redirect=true";
	}
	
	public String logout() {
		FacesUtil.getHttpSession().removeAttribute("usuario");
		return "/login.jsf?faces-redirect=true";
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public Usuario getUsuarioLogado() {
		return usuarioLogado;
	}

	public void setUsuarioLogado(Usuario usuarioLogado) {
		this.usuarioLogado = usuarioLogado;
	}
	
}
